package com.seka.control.service;

import java.util.Timer;
import java.util.TimerTask;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.seka.control.common.SekaPropDto;

/**
 * 心跳管理
 * @author mw
 *
 */
@Component
public class HeartbeatManager {

	/**
	 * 日志
	 */
	private static final Logger LOG = LoggerFactory.getLogger(HeartbeatManager.class);
	
	/**
	 * 服务配置信息
	 */
	@Autowired
	SekaPropDto sekaPropDto;
	/**
	 * 定时器
	 */
	Timer timer;
	
	
	@Autowired
	ServiceManager serviceManager;
	
	/**
	 * 开启心跳
	 */
	public void open() {
		if(timer ==null) {
			timer = new Timer();
		}
		timer.schedule(new TimerTask() {
			@Override
			public void run() {
				LOG.info("---开始seka 心跳检查------"); 
				check();
			}
		}, 2000, sekaPropDto.getTimer());
	}
	
	
	/**
	 * 停止
	 */
	public void stop() {
		if(timer !=null) {
			timer.cancel();//移除此任务
			LOG.info("---关闭心跳检查------"); 
		}
	}
	
	/**
	 * 服务检查
	 */
	private void check() {
		serviceManager.check(); 
	}
}
